/*
 * BaseException defines the object that all other exceptions will inherit from
 * Copyright (C) 2002 Johnathan Ingram, jingram@rogue-order.net
 *
 * This library is free software; you can redistribute it and/or
 *   modify it under the terms of the GNU Lesser General Public
 *   License as published by the Free Software Foundation; either
 *   version 2.1 of the License, or (at your option) any later version.
 *
 *   This library is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *   Lesser General Public License for more details.
 *
 *   You should have received a copy of the GNU Lesser General Public
 *   License along with this library; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
 *
 */


#include "baseException.h"


//------------------------------------------------------------------------------
// BaseException::BaseException
//------------------------------------------------------------------------------
BaseException::BaseException(
   const int _code, 
   const string &_name, 
   const string &_description, 
   const time_t _when)
:
   code(_code),
   name(_name),
   description(_description),
   when(_when)  
{
   // Build the long format string
   longFormat =  "Error Code:  ";
   longFormat += code;
   longFormat += "\nError:       ";
   longFormat += name;
   longFormat += "\nDescription: ";
   longFormat += description;
   longFormat += "\nTime:        ";
   longFormat += ctime(&when);      
}  // BaseException::BaseException


//------------------------------------------------------------------------------
// BaseException::BaseException
//------------------------------------------------------------------------------
BaseException::~BaseException()
{ };


//------------------------------------------------------------------------------
// BaseException::operator char*()
//------------------------------------------------------------------------------
BaseException::operator char*()
{  
   return (char*)longFormat.c_str();
}  // BaseException::operator char*()


//------------------------------------------------------------------------------
// BaseException::operator const char*()
//------------------------------------------------------------------------------
BaseException::operator const char*() 
{
   return longFormat.c_str();
}  // BaseException::operator const char*()


//------------------------------------------------------------------------------
// BaseException::operator string()
//------------------------------------------------------------------------------
BaseException::operator string() 
{
   return longFormat;
}  // BaseException::operator string()


